package com.bjsxt;

import java.util.LinkedList;

/**LinkedList的使用，非list标准 ，用于操双向链表*/
/*void addFirst(E e)   将指定元素插入到开头
* void addLast(E e)   将指定元素插入到结尾
* getFirst()    返回此列表的第一个元素
* getLast()     返回此列表的的最后一个元素
 * removeFirst()  移除此列表中的第一个元素，并返回这个元素
* removeLast()  移除此列表中的最后一个元素，并返回这个元素
* E pop（）     从此列表所表示的堆栈处弹出一个元素，等效于removeFirst()
* void push()[E e]  将元素推入此列表所表示的堆栈，这个等效于addFirst(E e)
* boolean isEmpty()   判断列表是否包含元素，如果不包含元素则返回true*/
public class TestLinkedList02 {
    public static void main(String[] args) {
        //实例化LinkedList
        LinkedList<String> linkedList = new LinkedList<>();
       /* linkedList.addFirst("a");
        linkedList.addFirst("b");
        linkedList.addFirst("c");
        //输出顺序是c,b,a
        for(String str:linkedList){
            System.out.println(str);
        }*/
        System.out.println("==============");
        linkedList.addLast("a");
        linkedList.addLast("b");
        linkedList.addLast("c");
        //输出顺序a,b,c
        for(String str1:linkedList){
            System.out.println(str1);
        }
        System.out.println("------获取第一与最后------");
        System.out.println(linkedList.getFirst());
        System.out.println(linkedList.getLast());

        System.out.println("------删除第一与最后------");
        linkedList.removeFirst();
        linkedList.removeLast();
        //剩下 b
        for(String str1:linkedList){
            System.out.println(str1);
        }
        System.out.println("------E pop（） ------");
        linkedList.addLast("e");
        linkedList.addLast("f");
        String val = linkedList.pop();
        System.out.println(val);
        System.out.println("-------------");
        for (String str2:linkedList){
            System.out.println(str2);
        }
        System.out.println("-----void push()[E e]---");
        linkedList.push("x");
        for (String str : linkedList){
            System.out.println(str);
        }
        System.out.println(linkedList.isEmpty());//false
    }
}
